home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / speechd-server-spawn < prev    next >
Text File  |  2009-10-13  |  2KB  |  88 lines

  1. #!/bin/sh
  2.  
  3. # speechd-server-spawn - A script to help with the launching of the
  4. # speech-dispatcher server either per user, or at the system level.
  5. #
  6. # Copyright (C) 2009 Canonical Ltd
  7. #
  8. # This program is free software; you can redistribute it and/or modify
  9. # it under the terms of the GNU General Public License as published by
  10. # the Free Software Foundation; either version 2 of the License, or
  11. # (at your option) any later version.
  12. #
  13. # This program is distributed in the hope that it will be useful,
  14. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. # GNU General Public License for more details.
  17. #
  18. # You should have received a copy of the GNU General Public License
  19. # along with this program; if not, write to the Free Software
  20. # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  21.  
  22. pidof_current_user()
  23. {
  24.     local spduid userid
  25.  
  26.     if [ $(id -u) -eq 0 ]; then
  27.         userid=$(getent passwd speech-dispatcher | cut -f 3 -d :)
  28.     else
  29.         userid=$(id -u)
  30.     fi
  31.  
  32.     for spduid in $(ps -C speech-dispatcher -o uid= | awk '{print $1}')
  33.     do
  34.         if [ "$spduid" = "$userid" ]; then
  35.             echo $(ps -C speech-dispatcher -o uid=,pid= | grep $spduid | awk '{print $2}')
  36.         fi
  37.     done
  38.  
  39. }
  40.  
  41. autospawn_check()
  42. {
  43.     if [ $(id -u) -eq 0 ]; then
  44.         if grep '^# AutoSpawn$' /etc/speech-dispatcher/speechd.conf > /dev/null 2>&1 ; then
  45.             return 0
  46.         else
  47.             return 1
  48.         fi
  49.     else
  50.         # If the user has no speech-dispatcher configuration files, assume autospawning = yes.
  51.         if [ ! -f $HOME/.speech-dispatcher/conf/speechd.conf ]; then
  52.             return 0
  53.         else
  54.             if grep '^# AutoSpawn$' $HOME/.speech-dispatcher/conf/speechd.conf > /dev/null 2>&1 ; then
  55.                 return 0
  56.             else
  57.                 return 1
  58.             fi
  59.         fi
  60.     fi
  61. }
  62.  
  63.  
  64. if [ "$(pidof_current_user)" = "" ]; then
  65.     SYSTEM_SPEECHD_SERVER_START_COMMAND="/etc/init.d/speech-dispatcher start spawn > /dev/null 2>&1"
  66.  
  67.     if [ $(id -u) -eq 0 ]; then
  68.         if autospawn_check ; then
  69.             $SYSTEM_SPEECHD_SERVER_START_COMMAND
  70.             echo $(pidof_current_user)
  71.             exit
  72.         fi
  73.     else
  74.         if [ ! -f $HOME/.speech-dispatcher/conf/speechd.conf ]; then
  75.             mkdir -p $HOME/.speech-dispatcher/conf
  76.             cp -r /etc/speech-dispatcher/* $HOME/.speech-dispatcher/conf
  77.         fi
  78.         if autospawn_check ; then
  79.             speech-dispatcher > /dev/null 2>&1
  80.             echo $(pidof_current_user)
  81.             exit
  82.         fi
  83.     fi
  84. else
  85.     echo $(pidof_current_user)
  86.     exit
  87. fi
  88.